package com.example.qx.qxa;


    import android.app.Service;
    import android.content.Context;
    import android.util.Log;

    import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;

public class weizhi {
        private final  static boolean DEBUG =true;
        private final   static String TAG="weizhi";
        private  static weizhi mInstance;
        private BDLocation location=null;
        private Context context;
        private  static    LocationClient mlocationClient=null;
        private Object object;
        public static  weizhi getInstance(Context context) throws Exception {
            if(mInstance==null){
                mInstance=new weizhi(context);
            }

            return mInstance;
        }
      public   BDLocationListener listener=new qx();

        public weizhi(Context context) throws Exception {
             this.context=context;
            object=new Object();
            synchronized (object){
                if(mlocationClient==null)
                {
                    mlocationClient=new LocationClient(context.getApplicationContext());
                }
                mlocationClient.registerLocationListener(listener);
                initparams();}
      }


        public void startMointor() throws Exception {
            if(DEBUG) Log.d(TAG,"请打开位置信息");
            if(!mlocationClient.isStarted()){
                try{
                    mlocationClient.start();
                }catch (Exception e){
                    e.printStackTrace();
                }

            }
        }

        public  void stopMonitor(){

            if(DEBUG) Log.d(TAG, "stopMonitor");
            if(mlocationClient!=null&&mlocationClient.isStarted())
                mlocationClient.stop();

        }
        public BDLocation getLocation(){
            if(DEBUG) Log.d(TAG, "getLocation ");
            return  location;
        }


        public void initparams(){
            LocationClientOption option=new LocationClientOption();
            option.setCoorType( "bd09ll" ); // 可选，默认gcj02，设置返回的定位结果坐标系，如果配合百度地图使用，建议设置为bd09ll;
           option.setScanSpan(1500); // 可选，默认0，即仅定位一次，设置发起连续定位请求的间隔需要大于等于1000ms才是有效的
            option.setIsNeedAddress(true); // 可选，设置是否需要地址信息，默认不需要
            option.setIsNeedLocationDescribe(true); // 可选，设置是否需要地址描述
           option.setNeedDeviceDirect(false); // 可选，设置是否需要设备方向结果
            option.setLocationNotify(true); // 可选，默认false，设置是否当gps有效时按照1S1次频率输出GPS结果
            option.setIgnoreKillProcess(true); // 可选，默认true，定位SDK内部是一个SERVICE，并放到了独立进程，设置是否在stop
           option.setIsNeedLocationDescribe(true); // 可选，默认false，设置是否需要位置语义化结果，可以在BDLocation
            option.setIsNeedLocationPoiList(true); // 可选，默认false，设置是否需要POI结果，可以在BDLocation
            option.SetIgnoreCacheException(false); // 可选，默认false，设置是否收集CRASH信息，默认收集
           option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy); // 可选，默认高精度，设置定位模式，高精度，低功耗，仅设备，模糊
            option.setIsNeedAltitude(true); // 可选，默认false，设置定位时是否需要海拔信息，默

            mlocationClient.setLocOption(option);


        }






    }
